<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <p data-lake-id="ubd94261d" id="ubd94261d"><br></p>
  <p data-lake-id="ude9b7b35" id="ude9b7b35"><span data-lake-id="u600d30c3" id="u600d30c3">这个问题是</span><a href="https://www.yuque.com/hollis666/vhr2ge/pq601cwrcmznni0x" data-lake-id="u7d9b84bd" id="u7d9b84bd"><span data-lake-id="u0c030cf5" id="u0c030cf5">https://www.yuque.com/hollis666/vhr2ge/pq601cwrcmznni0x</span></a><span data-lake-id="u9b93acdf" id="u9b93acdf"> 的衍生，内容基本上是来自这篇的，不是为了凑数，是很多人不知道这种其实可以当做项目亮点来用的，所以在这里单独再加一下。</span></p>
  <p data-lake-id="u0ea57304" id="u0ea57304"><span data-lake-id="u282bca72" id="u282bca72">​</span><br></p>
  <h3 data-lake-id="HId3q" id="HId3q"><span data-lake-id="u48ded468" id="u48ded468">背景</span></h3>
  <p data-lake-id="u729774a7" id="u729774a7"><br></p>
  <p data-lake-id="u435079a3" id="u435079a3"><span data-lake-id="u61855572" id="u61855572">项目中有一个数据迁移，原来的数据存储在旧的系统，现在系统做了重构，需要迁移到新的系统中，老系统的数据被加工到Excel中了，需要基于Excel实现文件的导入，同时需要避免内存溢出以及性能太低的问题。</span></p>
  <p data-lake-id="uc7539ada" id="uc7539ada"><span data-lake-id="ub9f8ded9" id="ub9f8ded9">​</span><br></p>
  <h3 data-lake-id="WLemP" id="WLemP"><span data-lake-id="u6d325845" id="u6d325845">技术选型</span></h3>
  <p data-lake-id="u6f8ab62b" id="u6f8ab62b"><br></p>
  <p data-lake-id="u1a79e266" id="u1a79e266"><span data-lake-id="u9bd7a889" id="u9bd7a889">在大文件的读取方面，EasyExcel更合适，因为他不会像POI一样耗内存，可以大大的减少内存占用。因为他并不会一次性把整个Excel都加载到内存中，而是逐行读取的。</span></p>
  <p data-lake-id="u19aca5df" id="u19aca5df"><span data-lake-id="u909b0f1d" id="u909b0f1d">​</span><br></p>
  <p data-lake-id="u55990189" id="u55990189"><span data-lake-id="u46910a6c" id="u46910a6c">同时考虑使用多线程来读取，这里就需要用到线程池的技术，直接用ExecutorService就行了。</span></p>
  <p data-lake-id="u95785f62" id="u95785f62"><span data-lake-id="ub8c3f756" id="ub8c3f756">​</span><br></p>
  <p data-lake-id="u138d4915" id="u138d4915"><span data-lake-id="u73daca6d" id="u73daca6d">因为还涉及到数据的批量写入，需要依赖mybatis或者mybatis-plus。</span></p>
  <p data-lake-id="u839149ff" id="u839149ff"><span data-lake-id="u7bec047f" id="u7bec047f">​</span><br></p>
  <h3 data-lake-id="ZciCj" id="ZciCj"><span data-lake-id="ua422a6b8" id="ua422a6b8">具体实现</span></h3>
  <p data-lake-id="uc1ed189d" id="uc1ed189d"><br></p>
  <p data-lake-id="u3e145d19" id="u3e145d19"><span data-lake-id="u8a7a79fe" id="u8a7a79fe">直接参考下面这篇就行了，代码都有的：</span></p>
  <p data-lake-id="u2ab3ad48" id="u2ab3ad48"><span data-lake-id="u0a9e4823" id="u0a9e4823">​</span><br></p>
  <p data-lake-id="u0961a18d" id="u0961a18d"><br></p>
  <h3 data-lake-id="Z8ngb" id="Z8ngb"><span data-lake-id="u5fdeb4e7" id="u5fdeb4e7">学习资料</span></h3>
  <p data-lake-id="u3f84f2a9" id="u3f84f2a9"><br></p>
  <p data-lake-id="u7fcf4f4a" id="u7fcf4f4a"><br></p>
  <p data-lake-id="u164589f2" id="u164589f2"><br></p>
 </body>
</html>